关于Hadoop数据块Miss在页面提示的问题 |
您所在的位置:网站首页 › hdfs corrupt › 关于Hadoop数据块Miss在页面提示的问题 |
这个文档转至台湾的已了论坛,地址是:http://hadoop.nchc.org.tw/phpbb/viewtopic.php?f=4&t=1938 https://blog.csdn.net/dajuezhao/article/details/6319705 請教一個hadoop運行維護中的問題: 背景: 調整hadoop配置: 1. hadoop的dfs.replication之前設置為1,現在改為3; 2. 去掉一個節點,增加6個節點。 現狀 50070頁面出現提示: WARNING : There are about 900 missing blocks. Please check the log or run fsck. 運行hadoop fsck / 提示很多block corrupt/missing,以及: 代碼: Total size: 365964738251 B Total dirs: 109 Total files: 3620 Total blocks (validated): 7945 (avg. block size 46062270 B) ******************************** CORRUPT FILES: 161 MISSING BLOCKS: 887 MISSING SIZE: 52060391642 B CORRUPT BLOCKS: 887 ******************************** Minimally replicated blocks: 7058 (88.83575 %) Over-replicated blocks: 0 (0.0 %) Under-replicated blocks: 0 (0.0 %) Mis-replicated blocks: 0 (0.0 %) Default replication factor: 3 Average block replication: 1.0902455 Corrupt blocks: 887 Missing replicas: 0 (0.0 %) Number of data-nodes: 15 Number of racks: 1 The filesystem under path '/' is CORRUPT 問題 1. dfs.replication從1改為3時,怎麼可以把原來的block都升級為3個呢?新寫入的文件都是3,但舊有的仍然為1; 2. 如果那些missing的block已經沒有用處,不需要恢復,怎麼能使得hadoop fsck檢查結果為HEALTHY呢? 3. 如果想要恢復missing的block,該怎麼做呢? 回答 1. 過一段時間 NameNode 自然會檢查 replication 數是否低於副本策略(3份),重點是您必須重新啟動 NameNode 的 process,副本策略才會生效。 2. hadoop fsck -delete 可以移除 missing block hadoop fsck -move 會把有錯誤的檔案移到 HDFS 的 /lost+found 3. 就要看那幾個 block 是否還有存在某幾台 DataNode 的 ${dfs.data.dir} 目錄中了 多謝Jazz老師的解答! 關於第一個問題,確實已經做過重啟namenode的操作,但目前看到的現象還是沒有變化,新寫入的文件replication為3,舊有文件的還是1。這個可能是什麽原因導致的呢? 嗯,應該是先前的 metadata 的紀錄是 replication = 1 請手動設定為 3。 代碼: hadoop fs -setrep -R -w 3 / 非常感謝Jazz老師的解答,確實這樣操作就可以了,感謝感謝!! 查了一下相關的說明:http://hadoop.apache.org/common/docs/r0.19.2/cn/hdfs_design.html上有提到: 减少副本系数 当一个文件的副本系数被减小后,Namenode会选择过剩的副本删除。下次心跳检测时会将该信息传递给Datanode。Datanode遂即移除相应的数据块,集群中的空闲空间加大。同样,在调用setReplication API结束和集群中空闲空间增加间会有一定的延迟。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |